import org.junit.Test;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Set;

/**
 * @description:
 * @author: duanjq
 * @time: 2021/9/20 9:38
 */
public class TestNewDateAPI {

    //DateTimeFormatter：格式化时间/日期
    @Test
    public void test(){
        DateTimeFormatter dtf=DateTimeFormatter.ISO_DATE;//默认格式 yyyy-MM-dd
        LocalDateTime ldt=LocalDateTime.now();
        String strDate= ldt.format(dtf);
        System.out.println(strDate);
        System.out.println("----------------------------------------------");
        //自定义datatimeFormatter
        DateTimeFormatter dtf2=DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
        String strDate2=dtf2.format(ldt);
        System.out.println(strDate2);

        LocalDateTime newDate=ldt.parse(strDate2,dtf2);//反解析
        System.out.println(newDate);
    }
    /***
     * 时区的处理
     *Java8中加入了时区的支持，带时区的时间分别为：ZoneDate、ZoneTime、ZoneDateTime
     * 其中每个时区对应着id ，地区id都为“{区域}/{城市}”的格式，例如: Asia/Shanghai等
     * ZoneId:该类包含了所有的时区信息,getAvailableZoneIds():可以获取所有时区信息；
     * of(id):用指定的时区信息获取ZoneId对象
     */
    //ZoneDate、ZoneTime、ZoneDateTime
    @Test
    public  void test2(){
        Set<String>set = ZoneId.getAvailableZoneIds();//获取所有时区
        set.forEach(System.out::println);
    }
    //获取指定时区的时间
    @Test
    public  void test3(){
        LocalDateTime ldt=LocalDateTime.now(ZoneId.of("Europe/Tallinn"));
        System.out.println(ldt);
    }


}
